﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DTO;
using BUS;
using Microsoft.Office.Interop.Excel;
namespace GUI
{
    public partial class Frmbaocaongay : Form
    {
        public Frmbaocaongay()
        {
            InitializeComponent();
        }
       
        private void button1_Click(object sender, EventArgs e)
        {
            BaoCaoBus a = new BaoCaoBus();
            if (tbbcngaybd.Text == null || tbbcnambd.Text == null
              || tbbcngaykt.Text == null || tbbcnamkt.Text == null)
            {
                MessageBox.Show("bạn chưa điền đủ thông tin vui lòng nhập đầy đủ \n", "Thông báo...", MessageBoxButtons.OK, MessageBoxIcon.Error);

            }
            else {
                if (rdbcngay.Checked == true)
                {
                    HoaDonDTO bc = new HoaDonDTO();
                    int Ngaybd = Convert.ToInt32(tbbcngaybd.Text);
                    int Thangbd = Convert.ToInt32(cbbcthangbd.SelectedItem.ToString());
                    int Nambd = Convert.ToInt32(tbbcnambd.Text);
                    bc.GioVao =Thangbd + "-" + Ngaybd + "-" + Nambd;
                    int Ngaykt = Convert.ToInt32(tbbcngaykt.Text);
                    int Thangkt = Convert.ToInt32(cbbcthangkt.SelectedItem.ToString());
                    int Namkt = Convert.ToInt32(tbbcnamkt.Text);
                    bc.GioRa = Thangkt + "-" + Ngaykt + "-" + Namkt;

                    DateTime n1 = DateTime.Parse(cbbcthangbd.SelectedItem.ToString() + "/" + tbbcngaybd.Text + "/" + tbbcnambd.Text);
                    DateTime n2 = DateTime.Parse(cbbcthangkt.SelectedItem.ToString() + "/" + tbbcngaykt.Text + "/" + tbbcnamkt.Text);
                    if (a.kiemtra(Ngaybd, Thangbd, Nambd) == 0)
                    {
                        MessageBox.Show("ngày tháng năm không hợp lệ \n", "Thông báo...", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                    if (a.kiemtra(Ngaykt, Thangkt, Namkt) == 0)
                    {
                        MessageBox.Show("ngày tháng năm không hợp lệ \n", "Thông báo...", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                    if (a.kiemtra_ngaynhap(n1, n2) == 0)
                    {
                        MessageBox.Show("thời gian bắt đầu lớn hơn thời gian kết thúc\n", "Thông báo...", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;

                    }
                    BaoCaoBus bc1 = new BaoCaoBus();
                    List<HoaDonDTO> ds = new List<HoaDonDTO>();
                    ds = bc1.xembaocao_theongay(bc);
                    dataGridView_bcngay.Rows.Clear();
                    float kq = 0;
                    for (int i = 0; i < ds.Count; i++)
                    {
                        dataGridView_bcngay.Rows.Add(ds[i].Ngay, ds[i].Thang, ds[i].Nam, ds[i].ThanhTien);
                        kq = kq + ds[i].ThanhTien;

                    }
                    tbbctongdoanhthu.Text = kq.ToString();
                }
                else if (rdbcthang.Checked == true)
                {
                    HoaDonDTO bc = new HoaDonDTO();
                    int Ngaybd = 1;
                    int Thangbd = Convert.ToInt32(cbbcthangbd.SelectedItem.ToString());
                    int Nambd = Convert.ToInt32(tbbcnambd.Text);
                    bc.GioVao = Thangbd + "-" + Ngaybd + "-" + Nambd;
                    int Thangkt = Convert.ToInt32(cbbcthangkt.SelectedItem.ToString());
                  
                    int Namkt = Convert.ToInt32(tbbcnamkt.Text);
                    int Ngaykt = a.getngay(Thangkt,Namkt);
                    bc.GioRa = Thangkt + "-" + Ngaykt + "-" + Namkt;

                    DateTime n1 = DateTime.Parse(cbbcthangbd.SelectedItem.ToString() + "/" + Ngaybd + "/" + tbbcnambd.Text);
                    DateTime n2 = DateTime.Parse(cbbcthangkt.SelectedItem.ToString() + "/" + Ngaykt + "/" + tbbcnamkt.Text);
 
                    if (a.kiemtra_ngaynhap(n1, n2) == 0)
                    {
                        MessageBox.Show("thời gian bắt đầu lớn hơn thời gian kết thúc\n", "Thông báo...", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;

                    }
 
                    BaoCaoBus bc1 = new BaoCaoBus();
                    List<HoaDonDTO> ds = new List<HoaDonDTO>();
                    ds = bc1.xembaocao_theothang(bc);
                    dataGridView_bcngay.Rows.Clear();
                    float kq = 0;
                    for (int i = 0; i < ds.Count; i++)
                    {
                        dataGridView_bcngay.Rows.Add(null, ds[i].Thang, ds[i].Nam, ds[i].ThanhTien);
                        kq = kq + ds[i].ThanhTien;

                    }
                    tbbctongdoanhthu.Text = kq.ToString();
                }
                else if (rdbcnam.Checked == true)
                {
                    HoaDonDTO bc = new HoaDonDTO();
                    int Ngaybd = 1;
                    int Thangbd = 1;
                    int Nambd = Convert.ToInt32(tbbcnambd.Text);
                    bc.GioVao = Thangbd + "-" + Ngaybd + "-" + Nambd;
                    int Ngaykt = 31;
                    int Thangkt = 12;
                    int Namkt = Convert.ToInt32(tbbcnamkt.Text);
                    bc.GioRa = Thangkt + "-" + Ngaykt + "-" + Namkt;

                    DateTime n1 = DateTime.Parse(Thangbd + "/" + Ngaybd + "/" + Nambd);
                    DateTime n2 = DateTime.Parse(Thangkt + "/" + Ngaykt + "/" + Namkt);

                    if (a.kiemtra_ngaynhap(n1, n2) == 0)
                    {
                        MessageBox.Show("thời gian bắt đầu lớn hơn thời gian kết thúc\n", "Thông báo...", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;

                    }
                    BaoCaoBus bc1 = new BaoCaoBus();
                    List<HoaDonDTO> ds = new List<HoaDonDTO>();
                    ds = bc1.xembaocao_theothang(bc);
                    dataGridView_bcngay.Rows.Clear();
                    float kq = 0;
                    for (int i = 0; i < ds.Count; i++)
                    {
                        dataGridView_bcngay.Rows.Add(null, null, ds[i].Nam, ds[i].ThanhTien);
                        kq = kq + ds[i].ThanhTien;

                    }
                    tbbctongdoanhthu.Text = kq.ToString();
                }
                else
                    MessageBox.Show("chưa check muc chọn \n", "Thông báo...", MessageBoxButtons.OK, MessageBoxIcon.Error);

            }
   
        }

        private void button3_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void rdbcthang_CheckedChanged(object sender, EventArgs e)
        {
            tbbcngaybd.ReadOnly = true;
            tbbcngaykt.ReadOnly = true;
            cbbcthangbd.Visible = true;
            cbbcthangkt.Visible = true;
        }

        private void rdbcnam_CheckedChanged(object sender, EventArgs e)
        {
            tbbcngaybd.ReadOnly = true;
            tbbcngaykt.ReadOnly = true;
            cbbcthangbd.Visible = false;
            cbbcthangkt.Visible = false;
        }

        private void rdbcngay_CheckedChanged(object sender, EventArgs e)
        {
            tbbcngaybd.ReadOnly = false;
            tbbcngaykt.ReadOnly = false;
            tbbcnambd.ReadOnly = false;
            tbbcnamkt.ReadOnly = false;
            cbbcthangbd.Visible = true;
            cbbcthangkt.Visible = true;
           
        }

        private void Frmbaocaongay_Load(object sender, EventArgs e)
        {

        }

        private void button2_Click(object sender, EventArgs e)
        {
            Microsoft.Office.Interop.Excel.Application la = new Microsoft.Office.Interop.Excel.Application();
            Workbook wb = la.Workbooks.Add(XlSheetType.xlWorksheet);
            Worksheet ws = (Worksheet)la.ActiveSheet;

            if (rdbcngay.Checked == true)
            {

                la.Visible = true;
                ws.Cells[1, 1] = "Ngày";
                ws.Cells[1, 2] = "Tháng";
                ws.Cells[1, 3] = "Năm";
                ws.Cells[1, 4] = "Doanh thu";
                int i = 2;
                for (int j = 0; j < dataGridView_bcngay.RowCount; j++)
                {


                    ws.Cells[i, 1] = dataGridView_bcngay.Rows[j].Cells[0].Value;
                    ws.Cells[i, 2] = dataGridView_bcngay.Rows[j].Cells[1].Value;
                    ws.Cells[i, 3] = dataGridView_bcngay.Rows[j].Cells[2].Value;
                    ws.Cells[i, 4] = dataGridView_bcngay.Rows[j].Cells[3].Value;

                    i++;
                }
                ws.Cells[i, 4] = "Tổng Doanh Thu";
                ws.Cells[i + 1, 4] = tbbctongdoanhthu.Text;
            }
            else if (rdbcthang.Checked == true)
            {
                la.Visible = true;
                ws.Cells[1, 1] = "Ngày";
                ws.Cells[1, 2] = "Tháng";
                ws.Cells[1, 3] = "Năm";
                ws.Cells[1, 4] = "Doanh thu";
                int i = 2;
                for (int j = 0; j < dataGridView_bcngay.RowCount; j++)
                {



                    ws.Cells[i, 2] = dataGridView_bcngay.Rows[j].Cells[1].Value;
                    ws.Cells[i, 3] = dataGridView_bcngay.Rows[j].Cells[2].Value;
                    ws.Cells[i, 4] = dataGridView_bcngay.Rows[j].Cells[3].Value;

                    i++;
                }
                ws.Cells[i, 4] = "Tổng Doanh Thu";
                ws.Cells[i + 1, 4] = tbbctongdoanhthu.Text;

            }
            else if (rdbcnam.Checked == true)
            {
                la.Visible = true;
                ws.Cells[1, 1] = "Ngày";
                ws.Cells[1, 2] = "Tháng";
                ws.Cells[1, 3] = "Năm";
                ws.Cells[1, 4] = "Doanh thu";
                int i = 2;
                for (int j = 0; j < dataGridView_bcngay.RowCount; j++)
                {
                    ws.Cells[i, 3] = dataGridView_bcngay.Rows[j].Cells[2].Value;
                    ws.Cells[i, 4] = dataGridView_bcngay.Rows[j].Cells[3].Value;
                    i++;
                }
                ws.Cells[i, 4] = "Tổng Doanh Thu";
                ws.Cells[i + 1, 4] = tbbctongdoanhthu.Text;

            }
            else
                MessageBox.Show("chưa check muc chọn \n", "Thông báo...", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }

        private void Frmbaocaongay_FormClosed(object sender, FormClosedEventArgs e)
        {
            Program.frm_manhinhchinh.sub_mn_baocaothoigian.Checked = false;
        }

        private void tbbcngaybd_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }

        private void tbbcnambd_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }

        private void tbbcngaykt_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }

        private void tbbcnamkt_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
            {
                e.Handled = true;
            }
        }



   
   
    }
}
